Advances in computing technologies have led to a proliferation of computing devices in modern society. Myriad computing devices having various shapes, sizes, and capabilities have been made available to consumers. For example, consumers may choose from computing devices such as mobile phones, smart phones, tablet computers, e-reader devices, personal computers, media players, gaming devices, set-top-box (“STB”) devices, digital video recorder (“DVR”) devices, Global Positioning System (“GPS”) devices, and other types of computing devices.
The proliferation of computing devices has challenged designers, developers, and testers of graphical user interfaces for the computing devices. For example, the competitive landscapes between manufacturers of computing devices, between providers of applications that run on computing devices, and between providers of services accessed through the computing devices have pushed designers, developers, and testers of graphical user interfaces to design, develop, and test graphical user interfaces as efficiently as possible without sacrificing quality.
Traditional processes for design, development, and testing of graphical user interfaces have not kept pace with the demands placed on the designers, developers, and testers of the graphical user interfaces. To illustrate, in a traditional design, development, and testing process, a designer utilizes a graphical user interface design tool to design graphics (e.g., a screen layout of graphical elements) to be included in a graphical user interface. Once the graphics design is complete, the designer provides information about the graphics design to a developer who is responsible for producing computing code configured to be executed by a computing device to render a graphical user interface that includes the graphics designed by the designer. The developer provides the computing code to a tester who is responsible for testing the computing code. This process is typically compartmentalized, with the designer, developer, and tester working in separate environments and without effective tools for efficiently collaborating and/or sharing resources across the separate environments. The production of graphical user interfaces is often slowed and/or otherwise adversely affected by the lack of such tools, especially when large production teams are involved in the production of graphical user interfaces.
As an example, a tester may identify a “bug” in graphical user interface computing code. In a conventional computing code design, development, and testing process, significant time may be wasted by the tester to determine which of the various personnel who have worked on the production of the computing code is responsible for the bug and/or for fixing the bug. During the course of designing, developing, and testing the computing code, various designers, developers, and/or testers may have worked on the code, making the task of identifying the responsible personnel difficult. Moreover, due to the passage of time, designers, developers, and/or testers who worked on the computing code may not remember the exact work that they performed on the computing code and may be unsure about and/or reluctant to accept responsibility for the bug and/or for fixing the bug, or may disagree over who introduced the bug into the computing code.